import typescript from '@rollup/plugin-typescript';
import commonjs from '@rollup/plugin-commonjs';
import resolve from '@rollup/plugin-node-resolve';
import { DEFAULT_EXTENSIONS } from '@babel/core';
import terser from '@rollup/plugin-terser';
import babel from '@rollup/plugin-babel';
import htmlPlugin from '@rollup/plugin-html';

const projectRoot = process.cwd();

export default {
  input: './src/index.ts', //输入 打包的文件
  output: [
    {
      file: 'dist/bundle.cjs.js', // CommonJS格式输出文件
      format: 'cjs',
    },
    {
      file: 'dist/bundle.esm.js', // ES模块格式输出文件
      format: 'es',
    },
    {
      file: 'dist/bundle.umd.js', // UMD格式，可用于浏览器和Node.js
      format: 'umd',
      name: 'BEST_OFD', // 全局变量名
    },
  ],
  plugins: [
    /** 使用typescript插件 */
    typescript({ tsconfig: './tsconfig.json' }), // 转换 TypeScript 文件

    resolve({
      browser: true,
    }),

    commonjs(), // 将 CommonJS 模块转换为 ES2015 模块

    babel({
      exclude: 'node_modules/**', // 排除node_modules目录下的文件进行Babel转换
      presets: [
        // 使用@babel/preset-env预设来转换ES6+代码
        [
          '@babel/preset-env',
          {
            targets: {
              // 配置目标浏览器环境，这里以支持IE 11为例
              ie: '11',
            },
          },
        ],
      ],
      plugins: [
        // 如果要使用@babel/plugin-transform-runtime插件
        '@babel/plugin-transform-runtime',
      ],
      // 以下是一些其他可能的配置选项
      // babelHelpers: 'runtime', // 指定使用的babelHelpers模式，'runtime'对应@babel/plugin-transform-runtime的模式
      // 可以在这里添加更多的Babel插件选项
    }),

    htmlPlugin({
      attributes: { html: { lang: 'zh-cn' } },
      title: 'ofd解析',
      fileName: 'index.html',
      output: 'public',
    }),

    terser(),
  ],
};
